package com.urbane.generator.model.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.ArraySchema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.Pattern;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;

/**
 * 代码生成请求参数对象
 * <p>
 * 该类用于接收前端传入的代码生成相关参数
 * 使用 Springdoc (OpenAPI 3.0) 注解提供 API 文档支持
 * 使用 Bean Validation 注解进行参数校验
 */
@Data
@Accessors(chain = true)
@Schema(description = "代码生成请求参数")
public class GenerateRequest {

    /**
     * 数据源配置
     */
    private GenDataSourceRequest genDataSourceRequest;

    /**
     * 全局配置
     */
    private GenGlobalRequest genGlobalRequest;

    /**
     * 包配置
     */
    private GenPackageRequest genPackageRequest;

    /**
     * 策略配置
     */
    private GenStrategyRequest genStrategyRequest;

    /**
     * 注入配置
     */
    private GenInjectionRequest genInjectionRequest;

}